package foroweb.entidades;

import java.io.Serializable;
import java.util.*;
import javax.persistence.*;

@Entity
public class Usuario implements Serializable{

    //Atributos
    @Id
    @Column(length=20)
    private String nick;
    @Column(nullable=false,length=20)
    private String password;
    @Column(nullable=false,unique=true,length=100)
    private String email;
    @Column(nullable=false)
    private boolean conectado;
    @OneToOne(cascade=CascadeType.ALL)
    @JoinColumn(unique=true,nullable=false)
    private Perfil perfil;
    @Temporal(TemporalType.TIMESTAMP)
    @Column(nullable=false)
    private Date registro;
    @Temporal(TemporalType.TIMESTAMP)
    @Column(nullable=false)
    private Date lastOn;
    @Column(nullable=false)
    private boolean activo;
    @Column(nullable=false,length=15)
    private String rol;
    private String ruta;
private String fondo;
    //Constructores
    public Usuario(){
        rol="";
        activo=true;
        conectado=false;
        ruta="No definido";
         fondo="nodefimido";
    }

    //Getters y Setters

     public String getFondo() {
        return fondo;
    }
    public void setFondo (String fondo) {
        this.fondo= fondo;
    }

    public String getRuta() {
        return ruta;
    }
    public void setRuta(String ruta) {
        this.ruta = ruta;
    }
    public boolean isConectado() {
        return conectado;
    }
    public void setConectado(boolean conectado) {
        this.conectado = conectado;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getNick() {
        return nick;
    }
    public void setNick(String nick) {
        this.nick = nick;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public Perfil getPerfil(){
        return perfil;
    }
    public void setPerfil(Perfil perfil){
        this.perfil=perfil;
    }
    public Date getLastOn() {
        return lastOn;
    }
    public void setLastOn(Date lastOn) {
        this.lastOn = lastOn;
    }
    public boolean isActivo() {
        return activo;
    }
    public void setActivo(boolean activo) {
        this.activo = activo;
    }
    public String getRol() {
        return rol;
    }
    public void setRol(String rol) {
        this.rol = rol;
    }
    public Date getRegistro() {
        return registro;
    }
    public void setRegistro(Date registro) {
        this.registro = registro;
    }

    //Polimorfismo
    @Override
    public boolean equals(Object o){
        Usuario u=(Usuario)o;
        return this.nick.equals(u.getNick());
    }
    @Override
    public String toString(){
        return this.nick;
    }
    public int compareTo(Object o){
        Usuario u=(Usuario)o;
        return u.getNick().compareTo(this.nick);
    }
}
